1. Field of Invention
The present invention relates generally to computer-implemented applications and, more particularly, to a system and method for evaluating the performance of a computer application, wherein the performance is measured in terms of availability.
2. Description of the Background
With more mission critical applications now being hosted as remote services, network service providers need to provide assurances of performance and availability to their customers. Regardless of network type, keeping a wide area network up and running at peak performance is essential to many businesses. Whether the traffic running on the network is an application, e-mail message, e-commerce transaction or streaming video, disruptions in the network can have dire consequences on any business that relies on an IT infrastructure for customer service or employee productivity.
Network service providers may provide such assurances in the form of a service level agreement (SLA). An SLA is a contract between a service provider and a customer that specifies measurable service parameters and outlines penalties to be imposed against the provider should the service level fall short of the agreed terms. An SLA may specify, for example, the percentage of time the service or application will be available, the number of users the application can serve simultaneously, or a specific performance benchmark to which actual performance will be periodically compared. Though initially offered only by telecommunications and Internet service providers, SLAs have grown in popularity to include the latest breed of service firms like Web hosting companies and application service providers (ASPs). Even IS departments in major enterprises have adopted the idea of writing an SLA so that services for their customers (i.e., users in other departments within the enterprise) can be measured, justified, and perhaps compared with those of outsourcing network providers. Aside from its customer service benefits, SLAs also help IT and network managers identify the infiastructure-level actions necessary to improve application availability.
Establishing suitable terms for an SLA requires a baseline of the network""s capabilities. Likewise, monitoring the terms of an existing SLA requires an assessment of the network capabilities and performance metrics. The most common SLA metric is availability. Availability is simply the ratio of the time during which the application is operational to a selected elapsed time, or evaluation period. Availability is often quantified in terms of the number of xe2x80x9c9xe2x80x9ds. One xe2x80x9c9xe2x80x9d is 90%, two are 99%, three are 99.9%, and so on. For example, for an application to be available at 99.99 percent, a common figure for many metrics, the system can have an outage or disruption for 4.32 minutes per month. Adding one more xe2x80x9c9xe2x80x9d reduces the allowable downtime to less than six minutes per year.
SLAs, of course, encompass measurable, technical performance of network components but also less tangible business items that can affect end-to-end performance. To ensure consistent end-to-end performance, SLAs often include basic areas of operations and management such as backup schedules, software updates, systems monitoring and maintenance, and even security. An overall assessment of application availability, therefore, requires a combined evaluation of these technical and business items. Combining these items in a meaningful way, however, presents problems for providers and requires significant time and effort.
Assessing application availability for several applications on a consistent basis can create additional complexities, especially when the applications have different defined service levels. For example, a serious outage for a lower availability system might be 5 minutes per month while an equally serious outage for a high availability system might be 5 minutes per year. Thus, applying a fixed grading scale to both types of systems would yield unreasonable results for one or both types of systems.
A method and system is needed that enables service providers to evaluate the availability of an application implemented on a computer network. Such a system should have sufficient capability to determine how well an application performs versus an SLA or other defined service level. The system should also be capable of assessing the architectural capabilities of the application to provide a given service level. The system should be capable of identifying service failure points within the IT infiastructure and the application, which would allow network managers to develop risk mitigation plans to improve the ability of the application to meet a defined service level. Finally, the system should have sufficient flexibility to produce meaningful results for both high and lower availability systems.
The present invention is directed to a system for evaluating the performance of a computer-implemented application, wherein the performance is measured in terms of availability. According to one embodiment, The system includes a metrics data module comprising actual service level data, wherein the actual service level data can be used to determine an actual service level; a defined data module comprising defined service level data, wherein the defined service level data can be used to determine a defined service level; and a service level analysis module in communication with the metrics data module and the defined data module for calculating the actual service level and the defined service level and for comparing the actual service level to the defined service level using a grading scale defined as a function of the defined service level.
The system of the present invention may be used, for example, to evaluate the performance of an application against established service levels. For example, the present invention may be used in the provision of remote or local data and telecommunications services. Such services may be offered by, for example, web hosting companies, application service providers, Internet service providers, or even IS departments serving a large user community in major enterprises. For service providers with performance obligations with respect to application availability, the present invention may be employed to evaluate an application against a defined service level. For example, the present invention may also be used to evaluate the performance of an application against the capability of the application architecture and also to identify gaps and vulnerabilities in these levels. Ultimately, the present invention may be used to provide recommendations to eliminate the gaps and vulnerabilities.
In addition to evaluating application performance against existing service level agreements, the present invention may be used to establish achievable defined service levels before entering into a service agreement or even before the construction of a system. For example, systems development organizations may use the present invention as a guide in the design and construction of systems to meet required business service levels prior to implementation.
These and other benefits of the present invention will be apparent from the detailed description below.